package com.woniuxy.service;

import com.nimbusds.jose.JOSEException;
import com.woniuxy.entity.dto.system.LoginDTO;
import com.woniuxy.entity.dto.system.UserDTO;
import com.woniuxy.entity.po.system.User;
import com.woniuxy.util.PageParam;
import com.woniuxy.util.ResponseData;
import org.springframework.web.multipart.MultipartFile;

import java.text.ParseException;
import java.util.List;

/**
 * @BelongsProject: charging-management-platform
 * @BelongsPackage: com.woniuxy.service
 * @Author: Quan
 * @Date: 2025/3/27 9:27
 */
public interface UserService {

	/**
	 * @Description: 根据user信息进行登录
	 * @Param: [user]
	 * @return: com.woniuxy.util.ResponseData<?>
	 * @Author: Quan
	 * @Date: 2025/3/27
	 */
	LoginDTO login(User user) throws JOSEException;

	/**
	 * 连表（Dept，Role）查询User管理页面
	 * @return
	 */
	ResponseData<?> queryAll(PageParam<UserDTO> pageParam);
	/**
	 * 根据id删除
	 */
	void deleteUser(Long id);
	/**
	 * 新增一条User数据
	 */
	void addUser(User user);
	/**
	 * @Description:批量删除
	 * @Param: 前端通过多选得到的数组
	 * @return:
	 * @Author: DirtyFlower
	 * @Date: 2025/3/29
	 */
	void batchDeleteUser(List<Long> ids);
	UserDTO queryIdInfo(Long id);
	void updateUser(UserDTO userDTO);
	void deptClean(Long deptId);

	/**
	 * 将图片存储到minio中，并且返回对应的地址
	 * @param file
	 * @return
	 * @throws Exception
	 */
	ResponseData<?> uploadImg(MultipartFile file) throws Exception;

	/**
	 * @Description: 获取登录用户的图片地址，用于返回数据
	 * @Param: []
	 * @return: com.woniuxy.util.ResponseData<?>
	 * @Author: Quan
	 * @Date: 2025/4/7
	 */
	ResponseData<?> getImgSrc() throws ParseException;
}
